    Help for Volume

Properties            Methods

How To Buy This Software

Order Form

Getting Custom Controls Written

Licensing Information

Description

The Mabry Volume control provides programmatic access to the Windows WAVE Volume mixer and allows you to adjust or mute either the left or right channels. Mabry's Volume can be used in a wide variety of applications such as controlling the sound level of WAV files or in conjunction with our WAVE control. Each channel can be regulated independently or muted with a simple boolean property. It also allows you to specify the device ID providing greater flexibility -- such as required when playing multiple WAV files.

Volume is a VB5 ActiveX control and can be used in most any 32-bit environment. Volume is a great companion product to Mabry's WAVE and Slider controls.

File Name

MVOLUME.OCX

ActiveX Compatibility

VB 4.0 (32-bit), 5.0 and 6.0

ActiveX Built With

Microsoft Visual Basic v5

ActiveX - Required DLLs

VB 5.0 Run-Time DLLs

MSVBVM50.DLL

Distribution Note    When you develop and distribute an application that uses this control, you should install the control file into the user's Windows SYSTEM directory.  The control file has version information built into it.  So, during installation, you should ensure that you are not overwriting a newer version.


Volume Properties

Properties that have special meaning for this control or that only apply to this control are marked with an asterisk (*).

*DeviceID Property

*MuteLeft Property

*MuteRight Property

*Version Property

*VolumeLeft Property

*VolumeRight Property


Volume Methods

Methods that have special meaning for this control or that only apply to this control are marked with an asterisk (*).

*Refresh Method


How To Buy This Software

CREDITS

Volume was written by Mark Lund.

CONTACT INFORMATION

Orders, inquiries, technical support, questions, comments, etc. can be sent to mabry@mabry.com on the Internet.  Our mailing address/contact information is:

Mabry Software, Inc.

503 316th Street Northwest

Stanwood, WA  98292

Sales: 1-800-99-MABRY (U.S. Only)

Voice: 360-629-9278

Fax: 360-629-9278

Web: http://www.mabry.com

COST

The price of Volume (control only) is US$25 (US$30 for International orders).  The cost of Volume and the Visual Basic source code (of the control itself) is US$75 (US$80 for International orders).

Prices are subject to change without notice.

Printed manuals are available at US$12.50 per copy.

PART NUMBERS

The product number for Volume (control only) is 17319.

The product number for  and the Visual Basic source code (of the control itself) is 17320.

DELIVERY METHODS

We can ship this software to you via air mail and/or e-mail.

Air Mail - you will receive diskettes, a printed manual (if purchased), and printed receipt if you choose this delivery method.  The costs are:

US$10.00 	US Priority Mail

US$15.00 	Airborne Express 2nd Day (US deliveries only)

US$20.00 	Airborne Express Overnight (US deliveries only)

US$20.00 	Global Priority Mail (Int'l deliveries only; Western Europe, Pacific Rim and Canada only)

US$45.00 	International Airborne Express (Int'l deliveries only)

E-Mail - We can ship this package to you via e-mail.  You need to have an e-mail account that can accept large file attachments (which includes CompuServe, AOL, and most Internet providers).  We will e-mail a receipt to you.

Be sure to include your full mailing address with your order.  Sometimes (on the Internet) the package cannot be e-mailed, so we are forced to send it through the normal mails.

ORDER / PAYMENT METHODS

You can order this software by phone, fax, e-mail, mail.  For your convenience, an order form has been provided that you can print out directly from this help file.

Please note that orders must include all information that is requested on our order form.   Your shipment WILL BE DELAYED if we have to contact you for additional information (such as phone number, street address, etc.).

You can pay by credit card (VISA, MasterCard, American Express, Discover, NOVUS), check (U.S. dollars drawn on a U.S. bank), cash, International Money Order, International Postal Order, Purchase Order (established business entities only - terms net 30), or wire transfer.

WIRE TRANSFER INFORMATION

Here is the information you need regarding our account for a wire funds transfer:

Bank Name: 	SeaFirst - Stone Way Branch

Bank Address: 	3601 Stone Way North

Seattle, WA  98103

Bank Phone: 	206-585-4951

Account Name: 	Mabry Software, Inc.

Routing Number: 	12000024

Account Number: 	16311706

If you are paying with a wire transfer of funds, please add US$25.00 to your order.  This is the fee that SeaFirst Bank charges Mabry Software.  Also, please ADD ANY ADDITIONAL FEES THAT YOUR BANK MAY CHARGE for wire transfer service. If you are paying with a  wire transfer, we must have full payment deposited to our account before we can ship your order.

Copyright © 1998 by Mabry Software, Inc.


Order Form
 Volume Order Form

Use the Print Topic... command from the File menu to print this order form.

Mail this 	Mabry Software, Inc.

form to: 	503 316th Street Northwest

Stanwood, WA  98292

Phone: 360-629-9278

Fax: 360-629-9278

Internet: mabry@mabry.com

Web: www.mabry.com

Where did you get this copy of Volume?

____________________________________________________________________

Name: 	____________________________________________________________________

Ship to: 	____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

____________________________________________________________________

Phone: 	_________________________________________________________________

Fax: 	_________________________________________________________________

E-Mail: 	_________________________________________________________________

Credit Card #: _______________________________________ exp. __________________

P.O. # (if any): 	____________________ Signature ____________________________________

qty ordered 	____ 	REGISTRATION
$25.00 ($30.00 international).  Check or money order in U.S. currency drawn on a U.S. bank.  Add $10.00 per order for shipping and handling. Add $12.50 per printed manual.

qty ordered 	____ 	SOURCE CODE AND REGISTRATION
$75.00 ($80.00 international).  Check or money order in U.S. currency drawn on a U.S. bank.  Add $10.00 per order for shipping and handling. Add $12.50 per printed manual.


DeviceID Property See Also
See Also

VolumeLeft Property

VolumeRight Property


MuteLeft Property See Also
See Also

VolumeLeft Property

VolumeRight Property


MuteRight Property See Also
See Also

VolumeLeft Property

VolumeRight Property


Refresh Method See Also
See Also

VolumeLeft Property

VolumeRight Property


VolumeLeft Property See Also
See Also

DeviceID Property

MuteLeft Property

MuteRight Property

Refresh Method


VolumeRight Property See Also
See Also

DeviceID Property

MuteLeft Property

MuteRight Property

Refresh Method


DeviceID Property

See Also

Description

sets or returns the device ID handle to which the volume properties will be applied.

Syntax

object.DeviceID [= deviceid ]

The syntax of the DeviceID property has these parts:

Part	Description

object	A Volume control.

deviceid	A long integer that specifies the device ID of a Windows sound output device.

Remarks

This parameter identifies the output device. For example, if you were to play one wave file, this parameter would be zero. If you were to play multiple wave files, you would set this parameter to 1 for the second file, 2 for the third file, etc.

Data Type

Long


MuteRight Property

See Also

Description

Sets or returns whether or not the right channel is muted.

Syntax

object.MuteRight [= mute ]

The syntax of the MuteRight property has these parts:

Part	Description

object	A Volume control.

mute	A boolean expression that determines whether or not a sound channel is muted.

Remarks

Muting is not inherent in Windows, so the Volume control handles muting by storing the current volume level of the channel, then driving the channel value to zero. When muting is turned off (set to False), the control restores the channel's value.

When a channel is muted, the Volume control continues to set/return the VolumeLeft and VolumeRight properties. For example, if a volume value is increased from a relatively low value to a high value while a channel's mute property is set to True (muting on), when the mute property is changed to False (muting off), the volume will be restored at the new, higher value not the value that was set at the time muting was applied.

Because muting is not inherent in Windows, the muting effect and the tracking of the real volume values will only apply while your application is running. If you terminate your application while muting is applied, Windows will use the assigned volume value(s) of zero.

Data Type

Boolean


MuteLeft Property

See Also

Description

Sets or returns whether or not the left channel is muted.

Syntax

object.MuteLeft [= mute ]

The syntax of the MuteLeft property has these parts:

Part	Description

object	A Volume control.

mute	A boolean expression that determines whether or not a sound channel is muted.

Remarks

Muting is not inherent in Windows, so the Volume control handles muting by storing the current volume level of the channel, then driving the channel value to zero. When muting is turned off (set to False), the control restores the channel's value.

When a channel is muted, the Volume control continues to set/return the VolumeLeft and VolumeRight properties. For example, if a volume value is increased from a relatively low value to a high value while a channel's mute property is set to True (muting on), when the mute property is changed to False (muting off), the volume will be restored at the new, higher value not the value that was set at the time muting was applied.

Because muting is not inherent in Windows, the muting effect and the tracking of the real volume values will only apply while your application is running. If you terminate your application while muting is applied, Windows will use the assigned volume value(s) of zero.

Data Type

Boolean


Refresh Method

See Also

Description

Reads the current Windows volume settings.

Syntax

object.Refresh

The syntax of the Refresh method has these parts:

Part	Description

object	Required. A Volume control.

Remarks

The Volume control reads the current Windows volume settings when it is initially loaded. Because other applications can affect these settings while your application is running, the Refresh method can be used to read the current Window settings at any time.


Version Property

Description

Returns the version of the control.

Syntax

object.Version

The syntax of the Version property has these parts:

Part	Description

object	A Volume control.

Remarks

This property holds the current version of the control.  It is read-only and available at both design-time and run-time.

Data Type

String


VolumeRight Property

See Also

Description

Sets or returns the volume level for the right channel.

Syntax

object.VolumeRight [= level ]

The syntax of the VolumeRight property has these parts:

Part	Description

object	A Volume control.

level	An integer that specifies a volume level.

Remarks

The VolumeLeft and VolumeRight values are signed integers (-32,768 to 32,767). A value of &HFFFF represents full volume, and a value of &H0000 represents no volume. If a device does not support both left and right channels, VolumeLeft specifies the volume level and VolumeRight is ignored.

The Volume control reads the current Windows volume settings when it is initially loaded or when the Refresh method is invoked. Changes made to the VolumeLeft and VolumeRight properties immediately change the settings that Windows will use.

When the control is unloaded, Windows will be left using the current settings. If you want to restore the original settings, your application will need to record the values at start up and reset them prior to unloading. If muting is on, Windows will be left with volume values of zero.

Data Type

Integer


VolumeLeft Property

See Also

Description

Sets or returns the volume level for the left channel.

Syntax

object.VolumeLeft [= level ]

The syntax of the VolumeLeft property has these parts:

Part	Description

object	A Volume control.

level	An integer that specifies a volume level.

Remarks

The VolumeLeft and VolumeRight values are signed integers (-32,768 to 32,767). A value of &HFFFF represents full volume, and a value of &H0000 represents no volume. If a device does not support both left and right channels, VolumeLeft specifies the volume level and VolumeRight is ignored.

The Volume control reads the current Windows volume settings when it is initially loaded or when the Refresh method is invoked. Changes made to the VolumeLeft and VolumeRight properties immediately change the settings that Windows will use.

When the control is unloaded, Windows will be left using the current settings. If you want to restore the original settings, your application will need to record the values at start up and reset them prior to unloading. If muting is on, Windows will be left with volume values of zero.

Data Type

Integer


Getting Custom Controls Written

If you or your organization would like to have custom controls written, you can contact us at the following:

Mabry Software, Inc.

503 316th Street Northwest

Stanwood, WA  98292

Phone: 360-629-9278

Fax: 360-629-9278

Internet: mabry@mabry.com

You can also contact Zane Thomas.  He can be reached at:

Zane Thomas

Post Office Box 121

Indianola, WA  98342

Internet: zane@mabry.com


Licensing Information

Legalese Version

Mabry Software grants a license to use the enclosed software to the original purchaser.  Copies may be made for back-up purposes only.  Copies made for any other purpose are expressly prohibited, and adherence to this requirement is the sole responsibility of the purchaser.

Customer written executable applications containing embedded Mabry products may be freely distributed, without royalty payments to Mabry Software, provided that such distributed Mabry product is bound into these applications in such a way so as to prohibit separate use in design mode, and that such Mabry product is distributed only in conjunction with the customers own software product.  The Mabry Software product may not be distributed by itself in any form.

Neither source code for Mabry Software products nor modified source code for Mabry Software products may be distributed under any circumstances, nor may you distribute .OBJ, .LIB, etc. files that contain our routines. This control may be used as a constituent control only if the compound control thus created is distributed with and as an integral part of an application.  Permission to use this control as a constituent control does not grant a right to distribute the license (LIC) file or any other file other than the control executable itself. This license may be transferred to a third party only if all existing copies of the software and its documentation are also transferred.

This product is licensed for use by only one developer at a time.  Mabry Software expressly prohibits installing this product on more than one computer if there is any chance that both copies will be used simultaneously.  This restriction also extends to installation on a network server, if more than one workstation will be accessing the product.  All developers working on a project which includes a Mabry Software product, even though not working directly with the Mabry product, are required to purchase a license for that Mabry product.

This software is provided as is.  Mabry Software makes no warranty, expressed or implied, with regard to the software.  All implied warranties, including the warranties of merchantability and fitness for a particular use, are hereby excluded.

MABRY SOFTWARE'S LIABILITY IS LIMITED TO THE PURCHASE PRICE.  Under no circumstances shall Mabry Software or the authors of this product be liable for any incidental or consequential damages, nor for any damages in excess of the original purchase price.

To be eligible for free technical support by telephone, the Internet, CompuServe, etc. and to ensure that you are notified of any future updates, please complete the enclosed registration card and return it to Mabry Software.

English Version

We require that you purchase one copy of a control per developer on a project.  If this is met, you may distribute the control with your application royalty free.  You may never distribute the LIC file.  You may not change the product in any way that removes or changes the requirement of a license file.

We encourage the use of our controls as constituent controls when the compound controls you create are an integral part of your application.  But we don't allow distribution of our controls as constituents of other controls when the compound control is not part of an application.  The reason we need to have this restriction is that without it someone might decide to use our control as a constituent, add some trivial (or even non-trivial) enhancements and then sell the compound control.  Obviously there would be little difference between that and just plain reselling our control.

If you have purchased the source code, you may not re-distribute the source code either (nor may you copy it into your own project).  Mabry Software retains the copyright to the source code.

Your license is transferable.  The original purchaser of the product must make the transfer request.  Contact us for further information.

The sample versions of our products are intended for evaluation purposes only.  You may not use the sample version to develop completed applications.